home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 2.6 KB | 77 lines |
- 100 '*****************************************************************
- 110 '** ROTATE FONT ** ROTATES AND STORES IN CHR$(128) **
- 120 '** ** THRU CHR$(255) THE PATTERNS OF THE **
- 130 '** VERSION 1.1 ** CHARACTERS FOR CHR$(0) THRU **
- 140 '** ** CHR$(127). TO USE - ADD 128 TO **
- 150 '** JUNE 6,1982 ** THE VALUE OF THE ASCII CHARACTER **
- 160 '*****************************************************************
- 170 '
- 180 SCREEN 2 : KEY OFF : CLS
- 190 CLEAR ,20000,1000
- 200 DEF SEG = &HB800
- 210 '
- 220 '*********************************************************************
- 230 '** THIS ROUTINE STORES A ROTATED VERSION OF CHR$ (0 THRU 127) **
- 240 '** IN CHR$ (128 THRU 255) **
- 250 '*********************************************************************
- 260 '
- 270 FOR X = 0 TO 127
- 280 PRINT X;
- 290 DEF SEG = &HFF00 'POINT TO CHARACTER PATTERN IN ROM AT &HFFA6E
- 300 POINTER = &HA6E + X*8 'POINT TO START OF INDIVIDUAL PATTERN
- 310 FOR Y = 0 TO 7 'FOR 8 BYTES
- 320 A(Y+1) = PEEK(POINTER+Y) 'GET PATTERN
- 330 NEXT Y 'AND STORE IN A(Y+1)
- 340 '
- 350 GOSUB 510 'ROTATE PATTERN 90 DEGREES
- 360 '
- 370 DEF SEG = 0
- 380 POKE &H7D,&HBC
- 390 '
- 400 FOR Y = 0 TO 7
- 410 POKE &HBC00+X*8+Y,B(Y+1)
- 420 NEXT Y
- 430 '
- 440 NEXT X
- 450 '
- 460 DEF SEG = 0
- 470 POKE &H7D,&HBC
- 480 CLS : FOR X = 0 TO 255 : PRINT CHR$(X);" "; : NEXT
- 490 PRINT
- 500 INPUT " PRESS ENTER FOR A DRIVER FOR THE GRAPHICS ";A$ : GOTO 720
- 510 '
- 520 '*********************************************************************
- 530 '** THIS SUBROUTINE TAKES AN 8 BYTE PATTERN AND ROTATES IT 90 DEG **
- 540 '** INPUT IN A(1) TO A(8) OUTPUT IN B(1) THRU B(8) **
- 550 '*********************************************************************
- 560 '
- 570 FOR C = 1 TO 8 : B(C) = 0 : NEXT C
- 580 '
- 590 FOR C = 1 TO 8
- 600 A = A(C)
- 610 '
- 620 FOR D = 8 TO 1 STEP -1
- 630 A = A + A
- 640 B(D) = B(D) * 2
- 650 IF A > 255 THEN B(D) = B(D) + 1
- 660 A = A MOD 256
- 670 NEXT D
- 680 '
- 690 NEXT C
- 700 '
- 710 RETURN
- 720 '
- 730 '*********************************************************************
- 740 '** THIS ROUTINE IS A SIMPLE DRIVER SO YOU CAN PRINT OUT MESSAGES **
- 750 '** WITH THIS PROGRAM WITH THE LINES GOING UP THE PAGE **
- 760 '*********************************************************************
- 770 '
- 780 CLS : SCREEN 1 : X = 24 : Y = 1
- 790 LOCATE X,Y : PRINT CHR$(128+45) ;
- 800 A$ = INKEY$ : IF A$ = "" THEN 800
- 810 B = ASC(A$) + 128
- 820 LOCATE X,Y : PRINT CHR$(B);
- 830 X = X-1 : IF X = 0 THEN X = 24 : Y = Y + 2
- 840 IF Y > 40 THEN GOTO 840
- 850 GOTO 790
-